#pragma once

#include <xhash>

namespace Hazal
{
	class CUUID
	{
	public:
		CUUID();

		CUUID(uint64_t uuid);

		CUUID(const CUUID&) = default;

		operator uint64_t() const
		{
			return m_unUUID;
		}

	private:
		uint64_t m_unUUID;
		
	};
}

namespace std
{
	template<>
	struct hash<Hazal::CUUID>
	{
		std::size_t operator()(const Hazal::CUUID& rUUID) const
		{
			return hash<uint64_t>()(rUUID);
		}
	};
}